package com.punch.common.vo.order;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
public class SettlementPageVO implements Serializable {

    @ApiModelProperty(name = "settlementId", notes = "结算订单id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long settlementId;


    @ApiModelProperty(name = "orgId", notes = "机构id")
    @JsonSerialize(using = ToStringSerializer.class)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long orgId;

    @ApiModelProperty(name = "orgName", notes = "机构名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String orgName;

    @ApiModelProperty(name = "supplierId", notes = "供应商id")
    @JsonSerialize(using = ToStringSerializer.class)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long supplierId;

    @ApiModelProperty(name = "supplierName", notes = "供应商名称")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String supplierName;


    @ApiModelProperty(name = "settlementAmount", notes = "结算金额")
    private BigDecimal settlementAmount;


    @ApiModelProperty(name = "settlementMonth", notes = "结算月份")
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private LocalDate settlementMonth;

    @ApiModelProperty(name = "settlementTime", notes = "结算时间")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime settlementTime;


    @ApiModelProperty(name = "settlementStatus", notes = "结算状态 0-待确认 1-已确认 2-已打款")
    private Integer settlementStatus;
}
